/* 
类型推断: TS会在没有明确的指定类型的时候推测出一个类型
    定义变量时赋值了, 推断为对应的类型
    定义变量时没有赋值, 推断为any类型
*/

(() => {
   let a = 'abc'  // 定义变量并赋了值, 变量的类型推断为值的类型
//    a = 3  // error
    let b // 定义变量没有赋值, 变量的类型推断为any类型
    b = 'abc'
    b = 3
    b = true

    let c = undefined  // any类型
    let d = null // any类型

})()
